﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class UserControl_ControlExpenseCode : System.Web.UI.UserControl
{
    ClassExecute.ClassExecute dt;
    string str = webapp4U.Configuration.CurrentConnectionString;
    string error = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (ViewState["flag"] == null)
            {
                ClearAdd();
                //ViewState["flag"] = false;
            }
            LoadExpenseType();
        }
    }

    void ClearAdd()
    {
        TabContainer1.ActiveTabIndex = 0;
        btnSave.Text = "Lưu";
        lblMsg.Text = "";
        lblMsg.Visible = false;

        txtChiPhi.Text = "";
        txtMaSo.Text = "New";
        ViewState["flag"] = true;
        txtChiPhi.Focus();
    }
    void ShowMessageBox(string text)
    {
        MessageBox.Text = text;
        MessageBox.ShowOnPageLoad = true;
    }
    protected void imgBtnAdd_Click(object sender, ImageClickEventArgs e)
    {
        TabContainer1.ActiveTabIndex = 0;
        btnSave.Text = "Thêm mới";
        lblMsg.Text = "";
        lblMsg.Visible = false;

        txtChiPhi.Text = "";
        txtMaSo.Text = "New";
        ViewState["flag"] = true;
        txtChiPhi.Focus();        
    }
    //protected void imgBtnSave_Click(object sender, ImageClickEventArgs e)
    //{
    //    dt = new ClassExecute.ClassExecute();
    //    int i = 0;
    //    try
    //    {
    //        if ((bool)ViewState["flag"])
    //        {
    //            //insert
    //            i = dt.ExecuteSQl_int(str, "[k_insertExpCode]", CommandType.StoredProcedure, ref error,
    //                new SqlParameter("@ExpDesc", txtChiPhi.Text),
    //                new SqlParameter("@ExpTypeID", Int32.Parse(ddlExtendeType.SelectedValue.ToString())),
    //                 new SqlParameter("@sitecode", Session["sitecode"].ToString()));
                    
    //            if (i == 1)
    //            {
    //               //ShowMessageBox("Thêm mới chi phí thành công");
    //                ClearAdd();
    //                lblMsg.Text = "Thêm mới chi phí thành công";
    //                lblMsg.Visible = true;
    //            }
    //            else
    //            {
    //                lblMsg.Text = "Hệ thống đang bảo trì";
    //                lblMsg.Visible = true;
    //                //ShowMessageBox("Hệ thống đang bảo trì");
    //            }                
    //        }
    //        else
    //        {
    //            //update
    //            i = dt.ExecuteSQl_int(str, "[k_updateExpCode]", CommandType.StoredProcedure, ref error,
    //                 new SqlParameter("@ExpID", Int32.Parse(txtMaSo.Text)),
    //                 new SqlParameter("@ExpDesc", txtChiPhi.Text),
    //                 new SqlParameter("@ExpTypeID", Int32.Parse(ddlExtendeType.SelectedValue.ToString())));
    //            if (i == 1)
    //            {
    //                lblMsg.Text = "Cập nhật chi phí thành công";
    //                lblMsg.Visible = true;
    //                //ShowMessageBox("Cập nhật chi phí thành công");
    //            }
    //            else
    //            {
    //                lblMsg.Text = "Đề nghị cung cấp mã chi phí để cập nhật";
    //                lblMsg.Visible = true;
    //                //ShowMessageBox("Đề nghị cung cấp mã chi phí để cập nhật");
    //            }
    //        }
    //    }
    //    catch (Exception ex)
    //    {

    //        string method = System.Reflection.MethodBase.GetCurrentMethod().Name;
    //        dt.WriteErrorLog(Server.MapPath(webapp4U.Globals.LogUrl()), ex.Message, method);
    //    }
    //}
    //protected void imgBtnDelete_Click(object sender, ImageClickEventArgs e)
    //{

    //}
    //protected void imgBtnFind_Click(object sender, ImageClickEventArgs e)
    //{
    //    TabContainer1.ActiveTabIndex = 1;
    //}
   
    void LoadExpenseType()
    {
        dt = new ClassExecute.ClassExecute();
        try
        {

            DataTable db = dt.Get_Data_DataTable(str, ref error, "k_getExpenseType", CommandType.StoredProcedure,
                new SqlParameter("@sitecode", Session["sitecode"].ToString()));
            dt.BindDropDownList(db, ddlExtendeType, "ExpTypeID", "ExpTypeDesc");
        }
        catch (Exception ex)
        {

            string method = System.Reflection.MethodBase.GetCurrentMethod().Name;
            dt.WriteErrorLog(Server.MapPath(webapp4U.Globals.LogUrl()), ex.Message, method);
        }
    }
    protected void btSearch_Click(object sender, EventArgs e)
    {
        LoadGrid();
    }
   
    void LoadGrid()
    {
        dt = new ClassExecute.ClassExecute();
        try
        {
            DataTable db = dt.Get_Data_DataTable(str, ref error, "[ls_FindExpCode]", CommandType.StoredProcedure,
                new SqlParameter("@Cont", txtSearch.Text),
                 new SqlParameter("@sitecode", Session["sitecode"].ToString()));
           
          
            if (db.Rows.Count == 0)
            {
                grvExpenseCode.DataSource = null;
                ShowMessageBox("Không tìm thấy kết quả");
            }
            else
            {
                grvExpenseCode.DataSource = db;
            }
            grvExpenseCode.DataBind();
        }
        catch (Exception ex)
        {

            string method = System.Reflection.MethodBase.GetCurrentMethod().Name;
            dt.WriteErrorLog(Server.MapPath(webapp4U.Globals.LogUrl()), ex.Message, method);
        }
    }

    protected void grvExpenseCode_PageIndexChanging1(object sender, GridViewPageEventArgs e)
    {
        grvExpenseCode.PageIndex = e.NewPageIndex;
        LoadGrid();
    }

    protected void grvExpenseCode_RowCommand1(object sender, GridViewCommandEventArgs e)
    {
        dt = new ClassExecute.ClassExecute();
        try
        {
            if (e.CommandName == "chon")
            {
                GridViewRow grv = ((Control)e.CommandSource).NamingContainer as GridViewRow;
                Label lblMaSo = (Label)grv.FindControl("lblMaSo");
                CheckBox chk = (CheckBox)grv.FindControl("checkActive");

                DataTable db = dt.Get_Data_DataTable(str, ref error, "[ls_getExpCodeInfo]", CommandType.StoredProcedure,
                    new SqlParameter("@ExpID",Int32.Parse(lblMaSo.Text)));
                   
                txtMaSo.Text = db.Rows[0]["ExpID"].ToString();
                txtChiPhi.Text = db.Rows[0]["ExpDesc"].ToString();
                chkActive.Checked = chk.Checked;
                try
                {
                    ddlExtendeType.SelectedValue = db.Rows[0]["ExpTypeID"].ToString();
                }
                catch
                {

                }
                grvExpenseCode.DataSource = null;
                grvExpenseCode.DataBind();

                ViewState["flag"] = false;

                lblMsg.Visible = false;
                btnSave.Text = "Cập nhật";

                TabContainer1.ActiveTabIndex = 0;

            }
        }
        catch (Exception ex)
        {

            string method = System.Reflection.MethodBase.GetCurrentMethod().Name;
            dt.WriteErrorLog(Server.MapPath(webapp4U.Globals.LogUrl()), ex.Message, method);
        }
    }

    protected void btnSave_Click(object sender, EventArgs e)
    {
        dt = new ClassExecute.ClassExecute();
        int i = 0;
        try
        {
            if ((bool)ViewState["flag"])
            {
                //insert
                i = dt.ExecuteSQl_int(str, "[k_insertExpCode]", CommandType.StoredProcedure, ref error,
                    new SqlParameter("@ExpDesc", txtChiPhi.Text),
                    new SqlParameter("@ExpTypeID", Int32.Parse(ddlExtendeType.SelectedValue.ToString())),
                    new SqlParameter("@sitecode", Session["sitecode"].ToString()),
                    new SqlParameter("@Active", chkActive.Checked)); // edit thêm Parameter Active

                if (i == 1)
                {
                    //ShowMessageBox("Thêm mới chi phí thành công");
                    ClearAdd();
                    lblMsg.Text = "Thêm mới chi phí thành công";
                    lblMsg.Visible = true;
                }
                else
                {
                    lblMsg.Text = "Hệ thống đang bảo trì";
                    lblMsg.Visible = true;
                    //ShowMessageBox("Hệ thống đang bảo trì");
                }
                //ViewState["flag"] = false;
                //txtMaSo.Text = "";
                //txtChiPhi.Text = "";
            }
            else
            {
                //update
                i = dt.ExecuteSQl_int(str, "[k_updateExpCode]", CommandType.StoredProcedure, ref error,
                     new SqlParameter("@ExpID", Int32.Parse(txtMaSo.Text)),
                     new SqlParameter("@ExpDesc", txtChiPhi.Text),
                     new SqlParameter("@ExpTypeID", Int32.Parse(ddlExtendeType.SelectedValue.ToString())),
                      new SqlParameter("@Active", chkActive.Checked));// Edit parameter Active
                if (i == 1)
                {
                    lblMsg.Text = "Cập nhật chi phí thành công";
                    lblMsg.Visible = true;
                    //ShowMessageBox("Cập nhật chi phí thành công");
                }
                else
                {
                    lblMsg.Text = "Đề nghị cung cấp mã chi phí để cập nhật";
                    lblMsg.Visible = true;
                    //ShowMessageBox("Đề nghị cung cấp mã chi phí để cập nhật");
                }
            }
        }
        catch (Exception ex)
        {

            string method = System.Reflection.MethodBase.GetCurrentMethod().Name;
            dt.WriteErrorLog(Server.MapPath(webapp4U.Globals.LogUrl()), ex.Message, method);
        }
    }
}